Enter description.
# carrega os pacotes
library(tidyverse) # core
library(reactable) # para tabelas interativas
library(reactablefmtr) # para embedar imagens no reactable
# carrega o exemplo
read_rds(file = 'data/decks.rds') %>%
# pegando quatro cartas de exemplo
filter(localizedName %in% c('Malena', 'Brigada Vrihedd',
'Dol Blathanna: Guarda' , 'Bruxo Gato')) %>%
# extraindo um exemplo único de cada carta
distinct(small, localizedName, texto) %>%
# juntando o prefixo do link da imagem
mutate(small = paste0('https://www.playgwent.com/', small)) %>%
# colocando os exemplos em um reactable
reactable(
compact = TRUE, borderless = TRUE, defaultColDef = colDef(align = 'left'),
style = list(fontFamily = "Fira Sans", fontSize = "12px"),
columns = list(
small = colDef(name = '', cell = embed_img(height = 80, width = 60), maxWidth = 80),
localizedName = colDef(name = 'Carta', maxWidth = 140),
texto = colDef(name = 'Descrição')
)
)
Carregando os metadados.
# carregando os pacotes
#library(rmarkdown) # para o rmarkdown
library(tidytext) # para ajudar a trabalhar com texto
library(ggridges) # para os ridge plots
library(plotly) # para visualizacao com interatividade
library(igraph) # para plotar grafos
library(fs) # para manipular os paths
# carregando os metadados de cada deck
metadados <- read_rds(file = 'data/lista_de_decks.rds')
# metadados <- read_rds(file = '_posts/2021-12-25-quais-as-associacoes-existentes-entre-as-cartas-dos-decks-de-gwent/data/lista_de_decks.rds')
# fazendo alguns ajustes à base dos metadados
metadados <- metadados %>%
# selecionando apenas as colunas desejadas
select(deck = id, name, faccao = slug, language, votes, craftingCost) %>%
# ajustando coluna de slug
mutate(
faccao = str_to_title(string = faccao),
faccao = case_when(faccao == 'Northernrealms' ~ 'Northern Realms',
faccao == 'Scoiatael' ~ "Scoia'tael",
TRUE ~ faccao)
)
# printando a tabela
metadados %>%
reactable(
sortable = TRUE, filterable = TRUE, compact = TRUE,
highlight = TRUE, borderless = TRUE, showPageSizeOptions = TRUE,
defaultColDef = colDef(align = 'center'), defaultPageSize = 5,
style = list(fontFamily = "Fira Sans", fontSize = "12px"),
columns = list(
deck = colDef(name = 'Deck'),
name = colDef(name = 'Nome'),
faccao = colDef(name = 'Facção'),
language = colDef(name = 'Origem'),
votes = colDef(name = 'Votos'),
craftingCost = colDef(name = 'Custo de Criação')
)
)
Carregando os decks.
# carregando os dados dos decks
decks <- read_rds(file = 'data/decks.rds')
# decks <- read_rds(file = '_posts/2021-12-25-quais-as-associacoes-existentes-entre-as-cartas-dos-decks-de-gwent/data/decks.rds')
# fazendo alguns ajustes aos dados dos decks
decks <- decks %>%
# removendo algumas informacoes que nao precisamos
select(-small, -big, -fluff, -ownable, -short, -categoryName, -primaryCategoryId, -name) %>%
# ajustando as colunas
mutate(
# passando o id do deck para um inteiro, para bater com os metadados
deck = as.integer(deck),
# ajustando coluna do slug
slug = str_to_title(string = slug),
slug = case_when(slug == 'Northernrealms' ~ 'Northern Realms',
slug == 'Scoiatael' ~ "Scoia'tael",
TRUE ~ slug),
# ajustando coluna do repeat count - quantidade daquela carta no deck
repeatCount = repeatCount + 1,
# contando quantidade de habilidade de cada carta
habilidades = case_when(is.na(keywords) ~ 0,
TRUE ~ str_count(string = keywords, pattern = ';') + 1)
) %>%
# passando os outros strings para maiusculo
mutate(across(.cols = c(rarity, cardGroup, type), .fns = ~ str_to_title(string = .x))) %>%
# juntando com id da faccao
left_join(y = select(metadados, deck, faccao), by = 'deck')
# printando a tabela
decks %>%
select(deck, faccao, card_in_seq, localizedName, repeatCount, slug, type) %>%
reactable(
sortable = TRUE, filterable = TRUE, compact = TRUE,
highlight = TRUE, borderless = TRUE, showPageSizeOptions = TRUE,
defaultColDef = colDef(align = 'center'), defaultPageSize = 5,
style = list(fontFamily = "Fira Sans", fontSize = "12px"),
columns = list(
deck = colDef(name = 'Deck'),
faccao = colDef(name = 'Facção'),
card_in_seq = colDef(name = 'Sequência'),
localizedName = colDef(name = 'Carta'),
repeatCount = colDef(name = 'Unidades'),
slug = colDef(name = 'Facção da Carta'),
type = colDef(name = 'Tipo')
)
)